1. Field of the Invention
This invention relates to the decoding of image data for driving an image display. More particularly, this invention relates to systems that decode image data encoded as a sequence of intra-coded and inter-coded image pictures.
2. Description of the Prior Art
It is known to provide image data decoding systems for decoding a stream of compressed image data representing a plurality of image channels. An example of such a system is MPEG-based digital television. The use of intra-coded and inter-coded image pictures within such systems provides a high degree of image data compression. Intra-coded image pictures are periodically inserted to provide a starting point for decoding the relevant image channel when that channel is selected. It will be appreciated that inter-coded image pictures rely on previously received and decoded data in order that they can themselves be decoded. Accordingly, when an image channel is first being decoded, this previously decoded data may not be available. For this reason, intra-coded image pictures are typically inserted at intervals so that the self-contained data for such pictures may be decoded without reliance on any previously decoded data and so provide a starting point for the decoding of the image channel concerned.
Whilst it is desirable to frequently insert intra-coded image pictures within the data stream to provide starting points for decoding, the associated disadvantage is that intra-coding is generally less efficient than inter-coding and so too many intra-coded image pictures will result in a disadvantageous decrease in the degree of compression achieved. Within a typical MPEG-based digital television system, intra-coded image pictures are inserted between one and two times per second. In some contexts intra-coded pictures may occur even less frequently.
U.S. Pat. No. 5,594,492 discloses techniques for assisting in switch between channels.
Viewed from one aspect the present invention provides image data decoding apparatus for decoding a stream of compressed image data representing a plurality of image channels, each image channel being encoded as sequence of intra-coded and inter-coded image pictures with decoding of a channel starting from an intra-coded image picture, said image data decoding apparatus comprising:
(i) a selected channel decoder for decoding a currently selected image channel to generate display data for driving an image display to show said currently selected channel; and
(ii) a non-selected channel processor for at least partially processing at least one non-selected channel from said plurality of image channels such that switching to generating display data for driving said image display to show said at least one non-selected channel can be made without having to wait for a next intra-coded image picture to be received.
The present invention recognises that the time spacing between intra-coded image pictures can produce an undesirable delay in the time taken to display a new channel when switching between channels. Television viewers often rapidly switch between channels in order to determine which programs are being shown on each channel so that they can select the channel they wish to view. In this context, whilst a delay of up to a second in being able to display a newly selected channel may not seem too disadvantageous, it can in practice inconvenience the user of the system and prove irritating.
The present invention both recognises this problem and provides the solution of at least partially processing the data associated with at least one non-selected channel. By not simply discarding the data associated with non-selected channels, it is possible when a switch is made to a channel that has been so partially processed to generate image pictures of that newly selected channel without having to wait for the next intra-coded image picture to be received. This provides a noticeable degree of improved usability to the system.
Whilst it may seem wasteful to process such non-selected channels in this way, in practice the additional memory and processing requirements have been found to be relatively minor and more than acceptable to achieve the improved speed with which a new channel may be displayed.
It will be appreciated that the selected channel decoder and the non-selected channel processor can be embodied as the same device or separate devices.
One way in which the data of a non-selected channel may be partially processed is to simply buffer the compressed data in its raw form. Subsequently when a switch is made to a channel for which the raw data is buffered, the buffered data may be decoded to xe2x80x9ccatch upxe2x80x9d in time to a current image picture for display. In general, this decoding process must process the data faster than xe2x80x9creal timexe2x80x9d in order to catch up.
Preferred embodiments of such systems recognise that the finite amount of time taken to perform such xe2x80x9ccatch-upxe2x80x9d processing may in some circumstances exceed the time that would be taken to merely wait for the next intra-coded image picture to be received in the compressed image data and then decode that intra-coded image picture. Accordingly, preferred embodiments save on the amount of buffer storage required and produce a display of a newly selected channel at least as quickly by determining whether or not the next intra-coded image picture will be received in less than a threshold time, and, if so, waiting for the next intra-coded image picture rather than decoding the buffered compressed image data.
Alternatively, the system may attempt catch up decoding as it removes data from the buffer but also check the received data for the arrival of an intra-coded picture at the point where the data enters the buffer. If an intra-coded picture is received then this may be used as a starting point rather than completing the catch up decoding. This approach is well suited to situations in which intra-coded pictures are not received at regular intervals.
If there is sufficient spare processing capacity when steady state decoding a selected image channel, alternative embodiments may act to at least partially decode the non-selected channels. Using this spare processing capacity during the steady state reduces the processing required for any xe2x80x9ccatch-upxe2x80x9d operation when a new channel is selected so that the delay before the new channel can be displayed is reduced.
In some embodiments it may be possible to fully decode the non-selected channels. However, it will be appreciated that fully decoding the channels in this way will require additional data storage for the full decoded image pictures and the processing load involved in fully decoding a channel may mean that fewer non-selected channels can be partially processed ready for if a switch is made to them.
Alternative embodiments may balance these considerations by at least partially decoding the data from a non-selected channel to form a spatially sub-sampled version of the non-selected channel. Such a spatially sub-sampled version will require less data storage and less processing capacity in the steady state so allowing less expensive systems to be used or more non-selected channels to be partially decoded.
The spatially sub-sampled version of a non-selected channel will not allow a full resolution version of the image pictures to be displayed immediately upon selection of a new channel, but in practice the viewer""s eye is more sensitive to being able to see a moving image of the new channel as soon as it is selected rather than to whether the newly selected image channel has a slightly degraded image quality for the first few pictures that are displayed until the next intra-coded image picture is received.
In systems including coded pictures not themselves used as reference pictures, these may be discarded rather than consuming resources in their buffering or decoding, a preferred embodiment discards the data for such pictures upon receipt and avoids ever buffering them. Alternatively a simpler embodiment may discard the pictures as the data is read out of the buffer.
As mentioned above, there is a trade-off between the number of non-selected channels that can be partially processed against the system requirements or image quality when a channel is first selected. Improved use may be made of the system resources in preferred embodiments in which the non-selected channels that are at least partially processed include one or more of a channel having a number one higher then the selected channel in an ordering associated with the channels, a channel having a number one lower then the selected channel in the sequence of channel identifiers, a channel selected immediately prior to the currently selected channel, a channel determined from prior use to be frequently selected for display and a channel currently highlighted within an on-screen selection list.
The above choice of which non-selected channels are to be at least partially processed is based upon the realisation that a viewer often moves between channels by pressing either the xe2x80x9cchannel-upxe2x80x9d button or the xe2x80x9cchannel-downxe2x80x9d button on the system controller, switches between channels using the xe2x80x9cpreviously-selected-channelxe2x80x9d button on the system controller or by selecting a highlighted channel from a displayed list or from the pattern of prior use is known to frequently select a particularly favoured channel or channels. In this way, the new channel that a viewer is most likely to select will be available for display more rapidly.
Viewed from another aspect the invention provides an image data decoding method of decoding a stream of compressed image data representing a plurality of image channels, each image channel being encoded as sequence of intra-coded and inter-coded image pictures with decoding of a channel starting from an intra-coded image picture, said image data decoding method comprising the steps of:
(i) decoding a currently selected image channel to generate display data for driving an image display to show said currently selected channel; and
(ii) at least partially processing at least one non-selected channel from said plurality of image channels such that switching to generating display data for driving said image display to show said at least one non-selected channel can be made without having to wait for a next intra-coded image picture to be received.